package com.le.utils;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

// 加载文件信息
public class Constant {
    // 给窗口定义一张图片
    public static BufferedImage bg;

    // 马里奥的动作图片
    // 左跳动作
    public static BufferedImage jumpL;
    // 右跳动作
    public static BufferedImage jumpR;
    // 左站动作
    public static BufferedImage standL;
    // 右站动作
    public static BufferedImage standR;

    // 定义一个集合（List长度不固定，好用），用于存放左跑的所有动作
    public static List<BufferedImage> runL = new ArrayList<>(); // list一定要有赋值，如果不赋值，list就是null，不能使用add方法；可以把list看作一个存放地址的容器，如果不赋值，这个地址就为空，没有地址就存放不了数据。。
    // 定义一个集合（List长度不固定，好用），用于存放右跑的所有动作
    public static List<BufferedImage> runR = new ArrayList<>();

    // 定义一个集合，用于存放障碍物
    public static List<BufferedImage> obstacles = new ArrayList<>();
    // 定义食人花、乌龟... TODO

    // 定义变量，记录文件的前缀
    public static String prefix = "./file/image/";

    // 初始化图片到系统中
    public static void initImage(){
        try {
            // 加载背景图片
            bg = ImageIO.read(new File(prefix + "bg2.jpeg"));
            // 加载左跳图片
            jumpL = ImageIO.read(new File(prefix + "mario_jump_l.png"));
            // 加载右跳图片
            jumpR = ImageIO.read(new File(prefix + "mario_jump_r.png"));
            // 加载左站图片
            standL = ImageIO.read(new File(prefix + "mario_stand_l.png"));
            // 加载右站图片
            standR = ImageIO.read(new File(prefix + "mario_stand_r.png"));
            // 加载左跑图片
            runL.add(ImageIO.read(new File(prefix + "mario_run_l1.png")));
            runL.add(ImageIO.read(new File(prefix + "mario_run_l2.png")));
            // 加载右跑图片
            runR.add(ImageIO.read(new File(prefix + "mario_run_r1.png")));
            runR.add(ImageIO.read(new File(prefix + "mario_run_r2.png")));
            // 加载障碍物图片
            for (int i = 1; i <= 6; i++){
                // 集合的第一个元素不可破坏的方块 地形
                // 集合的第二个元素可破坏的方块 砖块
                // 集合的第三个元素就是顶部左边的部分 水管
                // 集合的第四个元素就是顶部右边的部分 水管
                // 集合的第五个元素就是下面部分左边 水管
                // 集合的第六个元素就是下面部分右边 水管
                obstacles.add(ImageIO.read(new File(prefix + "ob"+ i +".png")));
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
